package offer_test_40;

//我们把只包含因子2,3,和5的称为丑数。求按从小到大的顺序的第1500个丑数。
//例如6、8都是丑数，但14不是，因为它包含因子7.习惯上我们把1当做第一个丑数。
public class fourteen_UglyNumber {
	public static void main(String[] args) {
		System.out.println(getUgleNum(7));
	}

	public static int getUgleNum(int k) {
		int m2 = 0;
		int m3 = 0;
		int m5 = 0;
		int[] array = new int[k];
		array[0] = 1;
		for (int i = 1; i < array.length; i++) {
			int temp = min(array[m2] * 2, array[m3] * 3, array[m5] * 5);
			array[i] = temp;
			while (array[m2] * 2 <= temp) {
				m2++;
			}
			while (array[m3] * 3 <= temp) {
				m3++;
			}
			while (array[m5] * 5 <= temp) {
				m5++;
			}
		}
		return array[k - 1];
	}

	public static int min(int a, int b, int c) {
		int minab = (a < b) ? a : b;
		return (minab < c) ? minab : c;
	}
}
